#ifndef __AOAOUTIL_H__
#define __AOAOUTIL_H__

#include <stdint.h>

uint16_t aut_atou16(uint8_t *a);

uint32_t aut_atou32(uint8_t *a);

uint64_t aut_atou64(uint8_t *a);

void aut_afromu16(uint8_t *a, uint16_t v);

void aut_afromu32(uint8_t *a, uint32_t v);

void aut_afromu64(uint8_t *a, uint64_t v);

/// big endian
uint16_t aut_atou16_be(uint8_t *a);

uint32_t aut_atou32_be(uint8_t *a);

uint64_t aut_atou64_be(uint8_t *a);

void aut_afromu16_be(uint8_t *a, uint16_t v);

void aut_afromu32_be(uint8_t *a, uint32_t v);

void aut_afromu64_be(uint8_t *a, uint64_t v);

/// little endian
uint16_t aut_atou16_le(uint8_t *a);

uint32_t aut_atou32_le(uint8_t *a);

uint64_t aut_atou64_le(uint8_t *a);

void aut_afromu16_le(uint8_t *a, uint16_t v);

void aut_afromu32_le(uint8_t *a, uint32_t v);

void aut_afromu64_le(uint8_t *a, uint64_t v);

#endif
